High performance telecom/datacom applications always seek to improve their throughput and reduce the operation and system overhead. Traditionally, a programming model for concurrent and distributed processing advocates the synchronous communication and processing of a pool of a relatively large number of threads, in order to perform the data processing task. The threads collaborate and synchronize amongst themselves so as to accomplish the processing task. However, such an approach has limited scalability. Such multi-threaded synchronous programming models are traditionally favored in situations where the input and output rates are relatively low and the processing and data transactions may be tens or hundreds of milliseconds, up even to time periods measured in seconds.
A scalable approach, which is also termed as an event driven asynchronous programming model, is provided by the present invention. Here, the event-driven programming model allows for a high input/output rate and for small transactions—typically those which are within the tens to hundreds of microseconds. Accordingly, significant performance benefits can be achieved using such an event-driven programming model for signalling switches.
It will be noted that the present invention, however, also permits for a synchronous programming model.
In keeping with the objects of the present invention, there is provided a signalling switch for use in information protocol telephony, and for initiating, sustaining, and terminating a plurality of discrete voice and data calls simultaneously, which comprises:                (a) A physical mounting shelf is provided, having a computer bus and a plurality of slots thereon, including a first host slot and a plurality of non-system slots, all in communication with the computer bus.        (b) A first single board computer card is placed in the host slot to serve at least as an operations and maintenance control card for the signalling switch.        (c) A first non-system card is placed in a first non-system slot so as to serve as a message transport controller card for the signalling switch.        (d) At least one second non-system card is placed in at least one second non-system slot, so as to serve as a master application controller card. It will be noted that where there are a plurality of second non-system cards, placed in a plurality of second non-system slots, only one of those cards will be assigned the function of a master application controller card.        (e) At least two local buses are provided either on the first non-system card or by way of a netbackplane to which various cards may communicate. Moreover, at least one PMC site is also found on the first non-system card connected on the first of the two local buses.        (f) The second of the first two local buses, which may be on the first non-system card or on a netbackplane, provides local bus communication between the first non-system card and the second non-system card or cards.        (g) Telephony routing information protocol software is resident on the first message transport controller card.        (h) Finally, the signalling switch includes at least an Ethernet interface which is resident therein, so as to provide communication between the signalling switch and clients of the signalling switch and routers for an information protocol telephony network. Thus, the signalling switch is positioned in an information protocol telephony network environment so as to initiate a transaction between a client and the network or between the network and a client, to sustain any calls being thus handled, and so as to terminate the transaction between the client and the network or between the network and the client when signal to do so, under the control of the resident telephony routing information protocol software.        
Typically, the Ethernet interface for the signalling switch is provided by at least one Ethernet card.
In some embodiments, at least two Ethernet cards can provide at least one Ethernet interface, thereby providing redundancy for the Ethernet interfaces of the signalling switch.
Typically, functional base software is provided in the signalling switch for task management purposes. Those task management purposes include mapping, device drivers, and interrupt handling and service routines for events from the plurality of cards which are mounted on the shelf and which communicate with the computer bus.
Typically, the operations and maintenance control card will include node maintenance software resident therein.
Each application controller card may include application dispatcher software which is resident therein, so as to provide line processing, so as to direct and distribute any message having a particular coding to a specific subsystem on the application controller card adapted to handle that particular coding, to receive the results from any specific subsystem of any processing of a message having a specific particular coding that the specific subsystem has handled, and to forward the results of any specific particular coding to the respective client or to the network, all as required.
Where there is node maintenance software resident on the operations and maintenance control card, the application dispatcher software may be further adapted so as to communicate with the node maintenance software so as to provide current device availability information.
Typically, there is a plurality of protocol software for a plurality of message protocols which is resident on the at least one application controller card.
Tuning means may be provided so as to distribute messaging loads among the computer bus and the two local buses on the first non-system card.